/**
 * 分页控件函数. <br>
 * Create by LaiHongbo on 2015-07-22.
 */
function PageCtrl() {
	return {
		// 初始化及分页.
		page : function(pagerObj, dataCount, pageNo) {
			pagerObj = {
				sizeList : pagerObj.sizeList || [ 2, 5, 8, 10, 20, 50, 100, 500 ],
				count : pagerObj.count || 2,
				pageSize : pagerObj.pageSize || 15,
				// pageSize : 15,
				currentPage : pagerObj.currentPage || 1,
				button : pagerObj.button || 5
			};
			if (pageNo != undefined && pageNo != null) {
				pagerObj.currentPage = pageNo;
			}
			// 计算页数.
			pagerObj.count = dataCount;
			var maxPage = Math.floor((pagerObj.count + pagerObj.pageSize - 1) / pagerObj.pageSize);
			pagerObj.maxPage = maxPage;
			// 如果改变了页大小, 当前页有可能超出最大页码范围.
			if (pagerObj.currentPage > maxPage) {
				pagerObj.currentPage = maxPage;
			}
			if (pagerObj.currentPage < 1) {
				pagerObj.currentPage = 1;
			}
			// 计算当前页的起始/结束索引.
			pagerObj.first = (pagerObj.currentPage - 1) * pagerObj.pageSize + 1;
			pagerObj.last = pagerObj.first + pagerObj.pageSize - 1;
			if (pagerObj.last > pagerObj.count) {
				pagerObj.last = pagerObj.count;
			}
			// 计算需要显示的分页按钮数, 从中间往两边推.
			var from = 1, button = maxPage;
			if (button > pagerObj.button) {
				button = pagerObj.button;
				// 超过按钮数, 才需要计算.
				if (pagerObj.currentPage > Math.floor(pagerObj.button / 2) + 1) {
					from = pagerObj.currentPage - Math.floor(pagerObj.button / 2);
					button = from + pagerObj.button - 1;
					if (button > maxPage) {
						button = maxPage;
						from = button - pagerObj.button + 1;
					}
				}
			}
			pagerObj.pageArr = [];
			while (from <= button) {
				pagerObj.pageArr.push(from++);
			}
			return pagerObj;
		},
		// 检查范围.
		check : function(pagerObj) {
			if (pagerObj.currentPage < 1) {
				pagerObj.currentPage = 1;
			}
			if (pagerObj.currentPage > pagerObj.maxPage) {
				pagerObj.currentPage = pagerObj.maxPage;
			}
		}

	};
}
